Form processing can be finished in two ways - successful or failed.
Form provides the user with feedback, if all the logic and checks are passed. It can be a default message - "The form was successfully processed" or you can define any message using Routines.
Execution can be stopped if required fields are empty or type of input text doesn't match to data type of a form field. Also the logic can include extra checks. In case the check failed, the logic provides the user with an error message or guidance on what to do next.